package com.generalbackend.common.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.Date;

/**
* ClassName: User
* @Description 用户表实体类
* @author tim.xie
* @date 2021-12-16 13:18
*/

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User  {
	/**
	 * 
	 */
	@JsonSerialize(using = ToStringSerializer.class)
	@TableId(value = "id", type = IdType.ID_WORKER)
    private Long id;
	/**
	 * 用户名
	 */
    @TableField("`name`")
    private String name;
	/**
	 * 真实姓名
	 */
    @TableField("real_name")
    private String realName;
	/**
	 * 用户头像路径
	 */
    @TableField("avatar")
    private String avatar;
	/**
	 * 密码
	 */
    @TableField("password")
    private String password;
	/**
	 * 标签
	 */
    @TableField("tags")
    private String tags;
	/**
	 * 最后登录时间
	 */
    @TableField("login_time")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date loginTime;
	/**
	 * 所属角色id
	 */
    @TableField("role_id")
    private Long roleId;
	/**
	 * 最后登录ip
	 */
    @TableField("login_ip")
    private String loginIp;
	/**
	 * 创建人
	 */
    @TableField("create_user")
    private Long createUser;
	/**
	 * 创建时间
	 */
    @TableField("create_time")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
	/**
	 * 修改人
	 */
    @TableField("update_user")
    private Long updateUser;
	/**
	 * 修改时间
	 */
    @TableField("update_time")
    private Date updateTime;
	/**
	 * 0已修改密码，1默认密码，
	 */
    @TableField("default_password")
    private Integer defaultPassword;
	/**
	 * 0没有被锁，1锁定
	 */
    @TableField("`lock`")
    private Integer lock;
	/**
	 * 登录失败次数
	 */
    @TableField("failure_times")
    private Integer failureTimes;


}